
import java.util.*;

/**
 * <p>
 * Botao instalado em um painel interno ao Elevador e representante de um
 * particular andar.
 * </p>
 */
class BotaoDeSelecao extends Botao {

  ///////////////////////////////////////
  // attributes


/**
 * <p>
 * Andar representado pelo BotaoDeSelecao.
 * </p>
 */
    private int andarAssociado; 

   ///////////////////////////////////////
   // associations

/**
 * <p>
 * Representa o Elevador em que se encontra instalado o BotaoDeSelecao.
 * </p>
 */
    protected Elevador elevador; 


  ///////////////////////////////////////
  // operations


/**
 * <p>
 * Construtor de uma instancia de BotaoDeSelecao.
 * </p>
 * 
 * @param andar - andar representado pelo BotaoDeSelecao.
 * 
 * @param elevador - Elevador onde se encontra instalado o BotaoDeSelecao.
 * 
 * @return um BotaoDeSelecao instalado dentro do Elevador.
 */
    public  BotaoDeSelecao(int andar, Elevador elevador) {        
        super();
        andarAssociado = andar;
        this.elevador = elevador;
    } // end BotaoDeSelecao        

/**
 * <p>
 * Informa ao Elevador o andar para o qual o Passageiro prentende ir e
 * solicita o servico.
 * </p>
 */
    public void solicitarAndar() {        
        armar();
        elevador.registrarBotaoDeSelecaoArmado(andarAssociado);
        elevador.moverPara(andarAssociado);
    } // end solicitarAndar        

/**
 * <p>
 * Registra que o pedido feito via o acionamento do Botao foi atendido.
 * </p>
 */
    public void registrarElevadorNoAndar() {        
        desarmar();
        elevador.registrarBotaoDeSelecaoDesarmado(andarAssociado);
    } // end registrarElevadorNoAndar        

 } // end BotaoDeSelecao



